Planet Simulator

在這一章,我們會跟據之前的萬有引力和行星的軌道特徵,製作一個簡單的行星模擬器。

0. 初始化

planetSimulator.pyde

Planet.py

image-20231113094507865

這兩段程式碼的要點包括:

第一段程式碼:

第二段程式碼:

程式碼的目的是創建和模擬太陽系中的行星運動。

1. 增加其他行星

planetSimulator.pyde

Planet.py

image-20231113104551401

這兩段程式碼與之前相比增加了以下內容:

planetSimulator.pyde中:

Planet.py中:

這些變更使得模擬器能夠模擬更多的行星運動,不僅僅是太陽和地球。現在,模擬器可以同時模擬太陽、地球、火星、水星和金星的運動。每個行星都有其自己的位置、半徑、顏色和質量,並且根據這些屬性在畫布上繪製圓形表示。

2. 增加引力

planetSimulator.pyde

Planet.py

image-20231113104903965

只見到一個太陽是正常的,因為程式一開始,所有行星已被太陽吸引相撞到太陽。

這兩段程式碼相較於之前的版本,新增了以下內容:

planetSimulator.pyde中:

Planet.py中:

 

Planet.py中的attraction方法和updatePos方法的功能如下:

attraction方法:

updatePos方法:

3. 自帶速度

planetSimulator.pyde

image-20231113185545216

只要為每顆行星增加初速,就可以模擬到運行。

4. 加入軌道

Planet.py

image-20231113190242741

image-20231114100115812

draw()的最後,加入:

nfc() 函式用於將數值轉換為指定小數位數的字串。在這個程式碼中,它將 self.distanceToSun 的值轉換為小數點後0位的字串。然後,text() 函式用於在位置 (x, y-25) 繪製這個字串。

從結果你可以發現,行星的半徑並不是固定的,行星的軌道並不是圓型。